return {
  -- 为光标提供一种类似涂抹的动画效果
  {
    "sphamba/smear-cursor.nvim",
    opts = {
      -- 加快涂抹效果
      stiffness = 0.3,
      trailing_stiffness = 0.1,
      distance_stop_animating = 4,
      -- 透明背景支持
      legacy_computing_symbols_support = true,

      cursor_color = "#66FFFF",
      hide_target_hack = true,
      gamma = 1,
    },
  },
  -- 多光标
  {
    "jake-stewart/multicursor.nvim",
    branch = "1.0",
    config = function()
      local mc = require("multicursor-nvim")
      mc.setup()
      local set = vim.keymap.set
      -- Add or skip cursor above/below the main cursor.
      set({ "n", "v" }, "<A-up>",         function() mc.lineAddCursor(-1) end)
      set({ "n", "v" }, "<A-Down>",       function() mc.lineAddCursor(1) end)
      set({ "n", "x" }, "<leader><up>",   function() mc.lineSkipCursor(-1) end)
      set({ "n", "x" }, "<leader><down>", function() mc.lineSkipCursor(1) end)
      -- Add or skip adding a new cursor by matching word/selection
      set({ "n", "v" }, "<c-m>", function() mc.matchAddCursor(1) end)
      set({ "n", "v" }, "<c-x>", function() mc.matchSkipCursor(1) end)
      set({ "n", "x" }, "<s-m>", function() mc.matchAddCursor(-1) end)
      set({ "n", "x" }, "<s-x>", function() mc.matchSkipCursor(-1) end)
      -- Add and remove cursors with control + left click.
      set("n", "<c-leftmouse>",   mc.handleMouse)
      set("n", "<c-leftdrag>",    mc.handleMouseDrag)
      set("n", "<c-leftrelease>", mc.handleMouseRelease)

      -- Disable and enable cursors.
      set({ "n", "v" }, "<leader>m", mc.toggleCursor)
      set("v", "<leader>m", mc.matchCursors)

      -- Mappings defined in a keymap layer only apply when there are
      -- multiple cursors. This lets you have overlapping mappings.
      mc.addKeymapLayer(function(layerSet)
        -- Select a different cursor as the main one.
        layerSet({ "n", "x" }, "<left>", mc.prevCursor)
        layerSet({ "n", "x" }, "<right>", mc.nextCursor)

        -- Delete the main cursor.
        layerSet({ "n", "x" }, "<leader>x", mc.deleteCursor)

        -- Enable and clear cursors using escape.
        layerSet("n", "<esc>", function()
          if not mc.cursorsEnabled() then
            mc.enableCursors()
          elseif mc.hasCursors() then
            mc.clearCursors()
          else
          end
        end)
      end)
    end,
  },
}
